A data redundancy system includes a plurality of computers each of which stores a copy of the same data. Such data redundancy systems are used to provide data backup of critical data. Prominent applications of data redundancy include database management systems, history maintenance, and automation controller circuits. In such applications, the data redundancy system includes a plurality of computers that store multiple copies of the same data. In particular, there is a primary computer and one or more secondary computers. The data stored in the primary computer is used by an external user/application. In the event of a fault in the primary computer system or in the access mechanism thereof, the data stored in the secondary computer can instead be used.
Conventionally, there are various communication options available for data communication within a data redundancy system. Important factors that need to be considered while selecting a particular communication option include cable length, power requirements, reliability, and cost. In particular, for a data redundancy application, the selected communication option should provide high speed, real time, reliable, and low cost communication.
Communication between computers is typically enabled by using either serial links or parallel links. Serial link communication is usually based on Ethernet based network protocols such as Transmission Communication Protocol (TCP) and Internet Protocol (IP). The link includes one or more cables and is enabled to communicate data conforming to a desired protocol. The cable is desirably adapted to ensure reliable as well as cost effective communication. Typical cable assemblies that achieve such a desired result include, without limitation, RS 232/432/485, a copper based cable assembly, or an optical cable assembly.
Parallel link communication is typically based on standards such as IEEE 1284, IEEE 488, and the like. These protocols and communication mechanisms define both uni-directional and bi-directional communication with a variety of communication speeds.
Generally, data redundancy systems serve two purposes. The first purpose is to maintain multiple copies of the data, which ensures that, even if the data stored in one of the computers is lost, the data can still be retrieved from one or more other computers. The second purpose is to ensure that the user is still able to retrieve data from the database of redundant computer even where communication with the external user accessing the data from one of the computers fails.
These objectives require one-to-one mapping (i.e., synchronization) between the data stored in each of the databases of the computers in the data redundancy system. The exchange of data between the computers is desirably fast and accurate. Fast and accurate data exchange requires an assessment of data consistency and integrity in a short time. Ideally, this assessment needs to be done in real time. Synchronization ensures that, even if communication between the external user and one of the computers fails, a copy of the required data can still be retrieved from a redundant computer.
Conventional redundancy systems suffer from a number of limitations. For example, the transmission of high speed data over conventional systems such as an RS 232/432/485 cable system is not reliable. The probability of error during the exchange of information is very high in the case of an RS 232/432/485 cable system. The alternative to an RS 232/432/485 cable system is an optical cable apparatus assembly. However, the application of an optical cable apparatus assembly is constrained by its complex hardware and associated cost.
Also, the connection is not robust. In particular, a single point failure in the connection results in a communication failure between the computers. Further, there is no mechanism to identify the point of the failure, i.e., the point at which the failure is encountered. Even if the fault is identified, switching of the communication channel so as to the correct the channel takes a substantial amount of time, which leads to an unnecessary delay in the transfer of data.
Moreover, the connection between the computers requires additional circuitry, such as an Ethernet network card, that adds to the complexity of the apparatus. In the case where an optical cable assembly is used to make the connection, additional hardware and back plane assemblies may be required, which adds to the cost of implementation. On the other hand, a connection based on an RS 232/432/485 cable assembly is simpler and less expensive, but it is not reliable. Consequently, the cost of system implementation is high. Further, the power consumption of the communication channel is high.
Accordingly, there is a need for a redundancy control apparatus that enables a reliable, high speed connection between computers. Additionally or alternatively, there is a need for a redundancy control apparatus that identifies the point of failure, if any, and/or avoids additional electrical circuits in establishing the connection in order to reduce cost.